import 'package:flutter/material.dart';
import 'package:flutter_boot/BaseApp.dart';
import 'package:flutter_boot/RouteManager.dart';

import 'FirstPage.dart';
import 'SecondPage.dart';

void main() => runApp(MyApp());

class MyApp extends BaseApp {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context, Widget page) {
    return MaterialApp(
      title: 'Flutter Boot Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // Try running your application with "flutter run". You'll see the
        // application has a blue toolbar. Then, without quitting the app, try
        // changing the primarySwatch below to Colors.green and then invoke
        // "hot reload" (press "r" in the console where you ran "flutter run",
        // or press Run > Flutter Hot Reload in a Flutter IDE). Notice that the
        // counter didn't reset back to zero; the application is not restarted.
        primarySwatch: Colors.blue,
      ),
      home: page,
      onGenerateRoute: RouteManager.instance.getRouteFactory(),
    );
  }

  @override
  void registerRoutes() {
    RouteManager.instance.registerRoute("main", FirstPage());
    RouteManager.instance.registerRoute("second", SecondPage());
  }
}
//
// class MyHomePage extends StatefulWidget {
//
//   MyHomePage({Key key, this.title}) : super(key: key);
//
//   // This widget is the home page of your application. It is stateful, meaning
//   // that it has a State object (defined below) that contains fields that affect
//   // how it looks.
//
//   // This class is the configuration for the state. It holds the values (in this
//   // case the title) provided by the parent (in this case the App widget) and
//   // used by the build method of the State. Fields in a Widget subclass are
//   // always marked "final".
//
//   final String title;
//
//   @override
//   _MyHomePageState createState() => _MyHomePageState();
// }
//
// class _MyHomePageState extends State<MyHomePage> {
//   static const bootChannel = const BasicMessageChannel<String>("startPage", StringCodec());
//   Widget page = Container();
//
//   _MyHomePageState(){
//     bootChannel.setMessageHandler((message) async {
//       setState(() {
//         var route = message.split("?")[0];
//         var newPage;
//         switch (route) {
//           case "second":
//             newPage = SecondPage(message);
//             break;
//           default:
//             newPage = FirstPage(message);
//             break;
//         }
//         page = newPage;
//       });
//       return "";
//     });
//   }
//
//   @override
//   Widget build(BuildContext context) {
//     return page;
//   }
// }
